@echo off
REM IndexTTS2 服务管理脚本
REM 提供简单的服务操作界面

title IndexTTS2 服务管理

:MENU
cls
echo ========================================
echo       IndexTTS2 服务管理工具
echo ========================================
echo.
echo 请选择操作:
echo.
echo [1] 查看服务状态
echo [2] 启动服务
echo [3] 停止服务  
echo [4] 重启服务
echo [5] 安装服务
echo [6] 卸载服务
echo [7] 环境检查
echo [8] 查看日志
echo [9] 打开Web界面
echo [0] 退出
echo.
set /p choice="请输入选项 (0-9): "

if "%choice%"=="1" goto STATUS
if "%choice%"=="2" goto START
if "%choice%"=="3" goto STOP
if "%choice%"=="4" goto RESTART
if "%choice%"=="5" goto INSTALL
if "%choice%"=="6" goto UNINSTALL
if "%choice%"=="7" goto CHECK
if "%choice%"=="8" goto LOGS
if "%choice%"=="9" goto OPEN_WEB
if "%choice%"=="0" goto EXIT

echo 无效选项，请重新选择...
pause
goto MENU

:STATUS
echo.
echo 正在查看服务状态...
sc query IndexTTSService
echo.
echo 检查端口占用:
netstat -ano | findstr :7863
echo.
pause
goto MENU

:START
echo.
echo 正在启动服务...
net start IndexTTSService
if %errorLevel% == 0 (
    echo ✅ 服务启动成功！
    echo 📱 Web界面: http://127.0.0.1:7863
) else (
    echo ❌ 服务启动失败
    echo 💡 请检查服务是否已安装或查看错误日志
)
echo.
pause
goto MENU

:STOP
echo.
echo 正在停止服务...
net stop IndexTTSService
if %errorLevel% == 0 (
    echo ✅ 服务停止成功！
) else (
    echo ❌ 服务停止失败
)
echo.
pause
goto MENU

:RESTART
echo.
echo 正在重启服务...
net stop IndexTTSService
timeout /t 3 /nobreak > nul
net start IndexTTSService
if %errorLevel% == 0 (
    echo ✅ 服务重启成功！
    echo 📱 Web界面: http://127.0.0.1:7863
) else (
    echo ❌ 服务重启失败
)
echo.
pause
goto MENU

:INSTALL
echo.
echo 正在安装服务...
echo ⚠️  需要管理员权限
echo.

REM 检查管理员权限
net session >nul 2>&1
if %errorLevel% == 0 (
    if exist ".venv\Scripts\activate.bat" (
        call .venv\Scripts\activate.bat
        python windows_service.py install
        if %errorLevel% == 0 (
            echo ✅ 服务安装成功！
        ) else (
            echo ❌ 服务安装失败
        )
    ) else (
        echo ❌ 虚拟环境不存在，请先运行 auto_deploy.bat
    )
) else (
    echo ❌ 需要管理员权限，请以管理员身份运行
)
echo.
pause
goto MENU

:UNINSTALL
echo.
echo 正在卸载服务...
echo ⚠️  需要管理员权限
echo.

REM 检查管理员权限
net session >nul 2>&1
if %errorLevel% == 0 (
    if exist ".venv\Scripts\activate.bat" (
        call .venv\Scripts\activate.bat
        python windows_service.py remove
        if %errorLevel% == 0 (
            echo ✅ 服务卸载成功！
        ) else (
            echo ❌ 服务卸载失败
        )
    ) else (
        echo ❌ 虚拟环境不存在
    )
) else (
    echo ❌ 需要管理员权限，请以管理员身份运行
)
echo.
pause
goto MENU

:CHECK
echo.
echo 正在进行环境检查...
if exist ".venv\Scripts\activate.bat" (
    call .venv\Scripts\activate.bat
    python check_environment.py
) else (
    echo ❌ 虚拟环境不存在，请先运行 auto_deploy.bat
)
echo.
pause
goto MENU

:LOGS
echo.
echo 查看Windows事件日志...
echo 正在打开事件查看器...
start eventvwr.msc
echo.
echo 💡 在事件查看器中查看:
echo    Windows日志 -> 应用程序
echo    查找来源为 "IndexTTSService" 的事件
echo.
pause
goto MENU

:OPEN_WEB
echo.
echo 正在打开Web界面...
start http://127.0.0.1:7863
echo.
echo 💡 如果页面无法访问，请确保:
echo    1. 服务正在运行
echo    2. 防火墙允许端口7863
echo    3. 没有其他程序占用该端口
echo.
pause
goto MENU

:EXIT
echo.
echo 感谢使用IndexTTS2服务管理工具！
echo.
pause
exit
